16 research outputs found

    A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded Systems

    Full text link
    Many Internet of Things and embedded projects are event-driven, and therefore require asynchronous and concurrent programming. Current proposals for C++20 suggest that coroutines will have native language support. It is timely to survey the current use of coroutines in embedded systems development. This paper investigates existing research which uses or describes coroutines on resource-constrained platforms. The existing research is analysed with regard to: software platform, hardware platform and capacity; use cases and intended benefits; and the application programming interface design used for coroutines. A systematic mapping study was performed, to select studies published between 2007 and 2018 which contained original research into the application of coroutines on resource-constrained platforms. An initial set of 566 candidate papers were reduced to only 35 after filters were applied, revealing the following taxonomy. The C & C++ programming languages were used by 22 studies out of 35. As regards hardware, 16 studies used 8- or 16-bit processors while 13 used 32-bit processors. The four most common use cases were concurrency (17 papers), network communication (15), sensor readings (9) and data flow (7). The leading intended benefits were code style and simplicity (12 papers), scheduling (9) and efficiency (8). A wide variety of techniques have been used to implement coroutines, including native macros, additional tool chain steps, new language features and non-portable assembly language. We conclude that there is widespread demand for coroutines on resource-constrained devices. Our findings suggest that there is significant demand for a formalised, stable, well-supported implementation of coroutines in C++, designed with consideration of the special needs of resource-constrained devices, and further that such an implementation would bring benefits specific to such devices.Comment: 22 pages, 8 figures, to be published in ACM Transactions on Embedded Computing Systems (TECS

    RA-MAP, molecular immunological landscapes in early rheumatoid arthritis and healthy vaccine recipients

    Get PDF
    Rheumatoid arthritis (RA) is a chronic inflammatory disorder with poorly defined aetiology characterised by synovial inflammation with variable disease severity and drug responsiveness. To investigate the peripheral blood immune cell landscape of early, drug naive RA, we performed comprehensive clinical and molecular profiling of 267 RA patients and 52 healthy vaccine recipients for up to 18 months to establish a high quality sample biobank including plasma, serum, peripheral blood cells, urine, genomic DNA, RNA from whole blood, lymphocyte and monocyte subsets. We have performed extensive multi-omic immune phenotyping, including genomic, metabolomic, proteomic, transcriptomic and autoantibody profiling. We anticipate that these detailed clinical and molecular data will serve as a fundamental resource offering insights into immune-mediated disease pathogenesis, progression and therapeutic response, ultimately contributing to the development and application of targeted therapies for RA.</p

    C++20 coroutines on microcontrollers - what we learned

    No full text
    Coroutines will be added to C++ as part of the C++20 standard. Coroutines provide native language support for asynchronous operations. This study evaluates the C++ coroutine specification from the perspective of embedded systems developers. We find that the proposed language features are generally beneficial but that memory management of the coroutine state needs to be improved. Our experiments on an ARM Cortex-M4microcontroller evaluate the time and memory costs of coroutines in comparison with alternatives, and we show that context switching with coroutines is significantly faster than with thread-based real time operating systems. Furthermore, we analysed the impact of these language features on prototypical IoT sensor software. We find that the proposed language enhancements potentially bring significant benefits to programming in C++ for embedded computers, but that the implementation imposes constraints that may prevent its widespread acceptance among the embedded development community

    Globalisation and the governance of biotechnology

    No full text
    This article focuses on the disjuncture between the regulatory problems generated by the rapid development of, and subsequent trade in crop “genetically modified organisms” (GMOs), and the ability of existing international governance mechanisms to manage the associated human and ecological risks. The article assesses how the globalization of economic activity is reconfiguring patterns of production, investment, regulation and political authority as they relate to the governance of biotechnology. It is argued that our collective ability to provide social and environmental protection from GMO-related risks must be understood in relation to the global economic processes which create the technology and influence the policy processes set up to manage it. This requires an enhanced understanding of the reciprocal relationships between intra- and inter-firm decision-making and global decision-making

    Conceptual framework for establishing the African Stroke Organization

    Get PDF
    Africa is the world’s most genetically diverse, second largest, and second most populous continent, with over one billion people distributed across 54 countries. With a 23% lifetime risk of stroke, Africa has some of the highest rates of stroke worldwide and many occur in the prime of life with huge economic losses and grave implications for the individual, family, and the society in terms of mental capital, productivity, and socioeconomic progress. Tackling the escalating burden of stroke in Africa requires prioritized, multipronged, and inter-sectoral strategies tailored to the unique African epidemiological, cultural, socioeconomic, and lifestyle landscape. The African Stroke Organization (ASO) is a new pan-African coalition that brings together stroke researchers, clinicians, and other health-care professionals with participation of national and regional stroke societies and stroke support organizations. With a vision to reduce the rapidly increasing burden of stroke in Africa, the ASO has a four-pronged focus on (1) research, (2) capacity building, (3) development of stroke services, and (4) collaboration with all stakeholders. This will be delivered through advocacy, awareness, and empowerment initiatives to bring about people-focused changes in policy, clinical practice, and public education. In the spirit of the African philosophy of Ubuntu “I am because we are,” the ASO will harness the power of diversity, inclusiveness, togetherness, and team work to build a strong, enduring, and impactful platform for tackling stroke in Africa
    corecore